t1 = ()
print(type(t1))  # 为tuple类型

t2 = (10)
print(type(t2))  # 为int类型

t3 = ('hello')
print(type(t3))  # 为str类型

# 只要小括号里面只有一个元素其类型都是原来的类型
# 如果只有一个元素要表示成元组类型，必须要在后面加一个逗号
t4 = (10,)
print(type(t4))  # 为tuple类型 

t5 = ('hello',)
print(type(t5))  # 为tuple类型

t6 = (1,2)
print(type(t6))

# 空元组里面放元素
import random

list1 = []

for i in range(10):
	list1.append(random.randint(1,20))
print(list1) 
t7 = tuple(list1)
print(t7)

# 查询：下标和切片操作  --》和字符串、列表一样
print(t7[0])
print(t7[-1])
print(t7[1:3])
print(t7[::-1])

# 最大值、最小值
print(max(t7))
print(min(t7))
# 求和
print(sum(t7))
#求长度
print(len(t7))
#元组中的内置函数
# print(t7.index(4))   # 返回元组中元素4所在的下标，如果没有则报错
# print(t7.count(4))   # 返回元组中元素4的个数

# 拆包和装包
t1 = (4,7,3)
# a,b = t1  ValueError: too many values to unpack (expected 2)
# a,b,c,d = t1
a,b,c = t1
print(a,b,c)
# print('\n\n\n')
# 变量个数不一致
t1 = (4,7,8,9,5,10)
a, *_,c = t1
print(a,b,_)

t2 = (9,)
a,*b = t2
print(a,b)
print(*b)

print('\n\n\n')

t1 = (4,7,8,9,5,10)
print(sorted(t1))  # 使用sorted()函数时会吧元组转成列表，需要通过tuple()强制转换转再成元组
print(tuple(sorted(t1)))


